Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Розв'язування на С задач, які використовують файли для вводу та виводу даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Основи алгоритмізації та програмування

Частина тексту файла

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи №7 з дисципліни: “Основи алгоритмізації та програмування ” «Розв'язування на С задач, які використовують файли для вводу та виводу даних» 2015 Мета роботи познайомитися iз засобами файлового вводу та виводу в мовi програмування С. Завдання лабораторної роботи Індивідуальні завдання 8 ті ж самі що і індивідуальні завдання 5 чи індивідуальні завдання 6 (уточнити конкретне завдання у викладача), які виконувалися у лабораторній роботі №5. Відмінність полягає у тому, що ввід та вивід виконується через файли. Необхідно написати два варіанти програми: програма у якій ввід здійснюється з текстового файлу і вивід виконується в текстовий файл; програма у якій ввід здійснюється з бінарного файлу і вивід відбувається в бінарний файл. У бінарному файлі дані зберігаються у внутрішньому представлені. Для варіанту, який використовує бінарні файли, необхідно написати дві допоміжні програми: допоміжну програму яка формує бінарний файл із вхідними даними; допоміжну програму яка читає вихідний бінарний файл і виводить на екран монітори вихідні дані. Хід виконання роботи Текст першої програми, яка працює з текстовими файлами. Для читання і запису створені окремі файли, розмір матриці як і раніше вводиться з клавіатури. #include <stdio.h> int FillingZeros(int *a, int array_size); int main(void) { int i, j; int cnt = 0, num = 1; int array_size; scanf("%d", &array_size); // Виділення пам'яті для матриці int **a = (int **)malloc(array_size*sizeof(int *)); for (int i = 0; i < array_size; i++) { a[i] = (int *)malloc(array_size*sizeof(int)); } // Відкриття потоку для вхідного файлу FILE *inp; inp = fopen("input.txt", "rt"); if (inp == NULL) { printf("Input file no found\n"); return 0; } // Відкриття потоку для вхідного файлу FILE *out; out = fopen("output.txt", "wt"); FillingZeros(a, array_size); for (i = 0; i < (array_size / 2); i++) { cnt++; for (j = cnt; j < array_size - cnt; j++) { fscanf(inp, "%d", &num); a[i][j] = num; } } // Вибір початової позиції для заповнення другої половини матриці. if (array_size % 2 == 0) cnt = (array_size / 2); else cnt = (array_size / 2) + 1; for (i = ((array_size / 2) + 1); i < array_size; i++) { cnt--; for (j = cnt; j < array_size - cnt; j++) { fscanf(inp, "%d", &num); a[i][j] = num; } } // Вивід матриці for (i = 0; i < array_size; i++) { for (j = 0; j < array_size; j++) { fprintf(out, "%d", a[j][i]); if (j == (array_size - 1)) fputc('\n', out); } } // Закриття всіх потоків fcloseall; return 0; } // Функція призначена для заповнення масиву нулями int FillingZeros(int **a, int array_size) { int i, j; for (i = 0; i < array_size; i++) { for (j = 0; j < array_size; j++) { a[i][j] = 0; } } return 0; } Результат виконання програми: / / Рис. 1. Файл з вхідними даними Рис.2. Матриця записана у файл Програма успішно прочитала числа з файлу input.txt(рис.1), і записала результат виконання до файлу output.txt(рис.2) . Друга програма складається з декількох файлів, файл «FileConversion.с» призначений для читання текстового файлу і переписування його вмісту до бінарного, файл «FillingZeros.c» заповнює матрицю яку ми обробляємо нулями, і файл «OutputFile.c» зчитує вміст вихідного бінарного файлу і виводить його вміст на екран. Головна програма здійснює зчитування і запис з бінарних файлів та перетворює матрицю. Текст функції FileConversion: #include <stdio.h> #include "Matrix.h" //Переписування вмісту текстового файлу до байтового int FileConversion(void) { int num = 1; //Відкриття потоку для вхідного файлу у текстовому вигляді FILE *inp; inp = fopen("input.txt", "rt"); if (inp == NULL) { printf("Input file no found\n"); } // Відкриття потоку ...
Антиботан аватар за замовчуванням

24.11.2018 19:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини